Building a solid baseline that works everywhere, then layering on richer features where supported.
Progressive enhancement is a design strategy that starts with accessible, working HTML as the foundation, then adds CSS for presentation and JavaScript for advanced behavior as optional layers. A form that submits via a regular POST works without any scripts, and JavaScript can later intercept it to submit without a page reload. If the script fails to load or the browser lacks a feature, users still get a functional experience.
It's often contrasted with graceful degradation, which starts with the full-featured experience and tries to patch it for older environments. Progressive enhancement is generally considered more robust because the baseline is guaranteed from the start. Interviewers like to ask how it applies to modern apps, and good answers mention feature detection instead of browser sniffing, the noscript element, native elements like details and dialog over custom widgets, and fallbacks such as multiple source formats on media.
What you'll walk away knowing